import {Request} from "../utils/request";
const Requ = new Request();
export default class Functions {

  /**
	 * 判断变量是否有赋值
	 * 原始对象数组 obj
	 * 变量名 variable
	 * @param {Object} obj			原始对象数组
	 * @param {Object} variable		变量名
	 */
	is_var(obj, variable)
	{
		if(obj[variable] == '' || obj[variable] == null || obj[variable] == undefined || obj[variable] == 0){
			return false;
		}else{
			return true;
		}
  }
  
  /**
   * 获取用户输入的内容，且赋值变量
   * @param {*} evnt 
   * @param {*} SetValueName 
   * @param {*} that 
   */
  GetInput(evnt, SetValueName, that) {
		that[SetValueName] = evnt.detail.value;
    return that;
  }
	
	
	/**
	 * 预览图片
	 * @param {*} current 
	 * @param {*} urls 
	 */
	PreImage(current, urls){
		wx.previewImage({
			current: current,			// 当前显示图片的http链接
			urls: Array(urls),		// 需要预览的图片http链接列表
		})
	}
	
	/**
	 * 获取原生收货地址
	 * @param {*} that 
	 * @param {*} callback 
	 */
	GetAddress(that = false, callback){
		wx.chooseAddress({
			success: (res) => {
				that['cityName'] 	 	= res.cityName;		// cityName	string	国标收货地址第二级地址
				that['detailInfo']  = res.detailInfo;	// detailInfo	string	详细收货地址信息
				that['userName'] 		= res.userName;		// userName	string	收货人姓名
				that['telNumber'] 	= res.telNumber;	// telNumber	string	收货人手机号码
				that['postalCode'] 	= res.postalCode;	// postalCode	string	邮编
				that['provinceName'] 	= res.provinceName;	// provinceName	string	国标收货地址第一级地址
				that['countyName'] 	= res.countyName;		// countyName	string	国标收货地址第三级地址
				callback(res, that);
			}
		});
	}

	/**
	 * 创建订单接口
	 * @param {*} goods 购物车内容
	 * @param {*} openid 用户id
	 */
	CreateOrder(goods){
		new Request('create_order.cls.php').request(
      () => {
        return {
          goods: goods,
          self_site_id: 47,
					openid: getApp().globalData.openid,
					/* self_site_id: getApp().globalData.self_site_id, */
        }
      },
      (res) => {
		getApp().globalData.orderid = res.data.orderid
		console.log(res.data)
        /* wx.switchTab({
			url: '/pages/self_take/self_take'
        }); */
      });
	}


	/**
	 * 将数据存储在本地缓存中指定的 key 中。会覆盖掉原来该 key 对应的内容。除非用户主动删除或因存储空间原因被系统清理，否则数据都一直可用。单个 key 允许存储的最大数据长度为 1MB，所有数据存储上限为 10MB
	 * @param {*} key 
	 * @param {*} value 
	 * @param {*} callback 
	 */
	SaveStoragec(key, value, callback = Object){
		wx.setStorage({
			key: key,
			data: value,
			success(res){
				callback(res);
			},
			fail: (res)=>{
				console.log(res);
				Requ.showToast("存储失败");
			}
		});
	}

	/**
	 * 从本地缓存中异步获取指定 key 的内容
	 * @param {*} key 
	 * @param {*} callback 
	 */
	GetSaveStorage(key, callback = Object){
		wx.getStorage({
			key: key,
			success (res) {
				callback(res.data);
			},
			fail: (res)=>{
				callback(false);
			}
		})
	}

	  /**
   * 
   * @param {计算两个经纬度的距离 km} e 
   */
  GetAddresKm(lat1, lng1, lat2, lng2){
    var radLat1 = lat1*Math.PI / 180.0;
    var radLat2 = lat2*Math.PI / 180.0;
    var a = radLat1 - radLat2;
    var b = lng1*Math.PI / 180.0 - lng2*Math.PI / 180.0;
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +
    Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
    s = s *6378.137 ;// EARTH_RADIUS;
    s = Math.round(s * 10000) / 10000;
    return s;    
  }
	 
}